package cn.tangwei.basic.service;

import cn.tangwei.basic.query.BaseQuery;
import cn.tangwei.basic.utils.PageList;

import java.util.List;

/**
 * 抽取service接口的公共代码
 * 基本的CRUD 分页加高级查询 批量删除
 * @param <T>
 */
public interface IBaseService<T> {
    // 添加一条数据
    void add(T t);

    // 修改一条数据
    void update(T t);

    // 删除一条数据
    void delete(Long id);

    // 查询一条数据
    T queryById(Long id);

    // 查询全部数据
    List<T> queryAll();

    // 分页高级查询
    PageList<T> queryPage(BaseQuery query);

    // 批量删除
    void patchDelete(List<Long> ids);

}
